﻿namespace Sustainalytics.LongRunningTaskManager.Interface
{
    /// <summary>
    /// Process task results in a series of stages.
    /// Any processing stage may be decorated by another stage thus permitting chainability.
    /// </summary>
    public interface ILongRunningTaskResultTransformer
    {
        /// <summary>
        /// Process task results which may yield another result or the passed result.
        /// </summary>
        /// <param name="result">  </param>
        /// <returns></returns>
        ILongRunningTaskResult Process(ILongRunningTaskResult result, LongRunningTaskContext taskContext);
    }
}
